actionmuxer: Make it possible to enumerate local actions
authorMatthias Clasen <mclasen@redhat.com>
Thu, 15 Oct 2020 20:18:36 +0000 (16:18 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 15 Oct 2020 20:32:55 +0000 (16:32 -0400)
This will be useful for exposing actions via the
AT-SPI Actions interface.

Update all callers.

gtk/gtkactionmuxer.c
gtk/gtkactionmuxerprivate.h
gtk/inspector/actions.c

index d10b813a0f7dca0f0f7797074474819c70056e30..ed9ee26b85889e4ae781514910a85c54f0942c56 100644 (file)
@@ -224,7 +224,8 @@ gtk_action_muxer_append_group_actions (const char *prefix,
 }
 
 char **
-gtk_action_muxer_list_actions (GtkActionMuxer *muxer)
+gtk_action_muxer_list_actions (GtkActionMuxer *muxer,
+                               gboolean        local_only)
 {
   GHashTable *actions;
   char **keys;
@@ -253,6 +254,9 @@ gtk_action_muxer_list_actions (GtkActionMuxer *muxer)
           while (g_hash_table_iter_next (&iter, (gpointer *)&prefix, (gpointer *)&group))
             gtk_action_muxer_append_group_actions (prefix, group, actions);
         }
+
+      if (local_only)
+        break;
     }
 
   keys = (char **)g_hash_table_get_keys_as_array (actions, NULL);
index cd1786b2c374eced7c327f0bfe957f9fffb0fb51..63a8f51c6cfdb7801477f9648141a21f33a51c9d 100644 (file)
@@ -81,7 +81,8 @@ void                    gtk_action_muxer_change_action_state            (GtkActi
                                                                          GVariant            *state);
 gboolean                gtk_action_muxer_has_action                     (GtkActionMuxer      *muxer,
                                                                          const char          *action_name);
-char **                 gtk_action_muxer_list_actions                   (GtkActionMuxer      *muxer);
+char **                 gtk_action_muxer_list_actions                   (GtkActionMuxer      *muxer,
+                                                                         gboolean             local_only);
 
 /* api for class actions */
 void                    gtk_action_muxer_action_enabled_changed         (GtkActionMuxer      *muxer,
index d3797a0b2d578777a82b8a866b9813a90f6f0c6b..9c01e7475bc712358ce73e167d18b9ec0dea9be2 100644 (file)
@@ -275,7 +275,7 @@ add_muxer (GtkInspectorActions *sl,
   int i;
   char **names;
 
-  names = gtk_action_muxer_list_actions (muxer);
+  names = gtk_action_muxer_list_actions (muxer, FALSE);
   for (i = 0; names[i]; i++)
     action_added (G_OBJECT (muxer), names[i], sl);
   g_strfreev (names);